perm filename CARS.SAI[0,BGB] blob
sn#064442 filedate 1973-10-03 generic text, type T, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
RECORD PAGE DESCRIPTION
00001 00001
00002 00002 BEGIN "CARS"
00003 00003 INTEGER I,J,N,NSUM,N1,N2,M
00004 ENDMK
⊗;
BEGIN "CARS"
SAFE REAL ARRAY X,Y,Z[-2:1000];
SAFE INTEGER ARRAY RAN5[0:255];
INTEGER RAN1,RAN2,RAN3,RAN4,INITFLG;
SIMPLE PROCEDURE RANDOMI;
BEGIN "INIT"
INTEGER I;
RAN1←1;
RAN2←3;
FOR I←0 STEP 1 UNTIL 255 DO
RAN5[I]←RAN2←(RAN2*3)MOD 2↑31 ;
INITFLG ← TRUE;
END "INIT";
SIMPLE INTERNAL REAL PROCEDURE RANDOM;
BEGIN "RANDOM"
IF INITFLG THEN ELSE RANDOMI;
START_CODE MOVE 1,RAN2;MULI 1,1756;IDIVI 2,8191;MOVEM 3,RAN1;END;
COMMENT RAN1←(RAN2*1756) MOD 8191;
RAN3←RAN1 DIV 32;
RAN4←RAN5[RAN3];
RAN2←RAN5[RAN3]←(RAN2*3)MOD 2↑31;
RETURN(RAN4/2↑31)
END "RANDOM";
INTEGER I,J,N,NSUM,N1,N2,M;
RECURSIVE PROCEDURE PARK(REAL XLO,XHI);
BEGIN
REAL Q;
IF (XHI-XLO)<1.0 THEN RETURN;
N ← N+1;
Q ← (XHI-XLO-1)*RANDOM + XLO + 0.5;
PARK(XLO,Q-0.5);PARK(Q+0.5,XHI);
END;
FOR I←1 STEP 1 UNTIL 1000 DO
BEGIN
N2←N1; N1←N; N←0;
PARK(0.0,100.0);
NSUM ← NSUM + N;
X[I] ← NSUM/I;
Y[I] ← X[I-2] - (X[I-1]-X[I-2])↑2/(X[I]-2*X[I-1]+X[I-2]);
Z[I] ← Y[I-2] - (Y[I-1]-Y[I-2])↑2/(Y[I]-2*Y[I-1]+Y[I-2]);
OUTSTR(CVS(I)&9&CVS(N)&9&CVG(NSUM/I)&9&CVG(Y[I])&9&CVG(Z[I])&13&10);
END;
END "CARS";